"""
@name : 2.单元测试
@author : wenyao
@projectname: sanchuanglianxi
"""
# def func1_abs(i):
#     #代码忽略
#     print(f"{i}  :this is abs")
#
# print(func1_abs(1))
# print(func1_abs(0.8))
# print(func1_abs(-1))
# print(func1_abs(0))

#函数进行单元测试
#unittest
# import unittest
# import func
#
# #测试用例
# class TestFunc(unittest.TestCase):
#     #测试test_func中的函数
#     #必须以test开头
#     def test_add(self):
#         self.assertEqual(func.add(1,2),4)
#         self.assertEqual(func.add(1,3),4)
#
#     def test_div(self):
#         self.assertEqual(func.divide(3,3),1)
#         self.assertEqual(func.divide(2,2),2)
#
# if __name__ == "main":
#     unittest.main()

#类进行单元测
from mycls import Count
import unittest

class TestCount(unittest.TestCase):
    #每个测试用例执行之前都会执行setUp
    def setUp(self):
        print('start......')

    #每个测试用例测试之后都会执行tearDown
    def tearDown(self):
        print("end........")

    def test_add(self):
        print("test_add")
        self.Count = Count(2,2)
        self.assertEqual(self.Count.add(),4)

    def test_acbe(self):
        print("test_acbe")
        self.Count = Count(2,1)
        self.assertEqual(self.Count.multi(),2)

if __name__ == "__main__":
    #默认按照测试函数名字的ascii码来执行的
    #main函数集成了这些功能，包含了整个过程
    #unittest.main()
    suit = unittest.TestSuite()
    suit.addTest(TestCount("test_add"))
    runner = unittest.TextTestRunner()
    runner.run(suit)

#unittest  主要包含了四个模块
#TestCase： 一个TestCase实例就是一个测试用例
#TestSuite: 多个测试用例集合在一起就是一个TestSuite
#TestLoader: 将TestCase 加载到TestSuite
#TextTestRunner: 执行测试用例的
#TextTestResult：报错测试结果